package suanfa;

public class TheLagestNumberOfOne {
    //给定一个二进制数组 nums 和一个整数 k，假设最多可以翻转 k 个 0 ，则返回执行操作后 数组中连续 1 的最大个数 。
    //输入：nums = [1,1,1,0,0,0,1,1,1,1,0], K = 2
    //输出：6
    //解释：[1,1,1,0,0,1,1,1,1,1,1]
    //粗体数字从 0 翻转到 1，最长的子数组长度为 6。
    public int longestOnes(int[] nums, int k) {
        int zero=0;
        int ret=0;
        for(int right=0,left=0;right<nums.length;right++){
            if(nums[right]==0) zero++;
            while(zero>k){
                if(nums[left++]==0) zero--;
            }
            ret=Math.max(ret,right-left+1);
        }
        return ret;
    }
}
